package com.fau.fm.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang.time.DateFormatUtils;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;

/**
 * @desc 物流公司统计临时对象
 * @author dangjh
 * @datetime 2014年11月25日,下午4:34:55
 */
public class MedicalLogisticsStatistics implements Serializable, JSONAware {

	private static final long serialVersionUID = -1428646783361810545L;

	// 发货部分
	private Integer invoiceNumber;
	private Integer invoiceProNumber;
	private BigDecimal invoiceMoney;
	private BigDecimal invoiceFreight;
	private BigDecimal invoiceTotal;
	
	// 退单部分
	private Integer backNumber;
	private Integer backProNumber;
	private BigDecimal backMoney;
	private BigDecimal backFreight;
	private BigDecimal backTotal;
	
	// 签收部分
	private Integer signNumber;
	private Integer signProNumber;
	private BigDecimal signMoney;
	private BigDecimal signFreight;
	private BigDecimal signTotal;
	
	// 对账部分
	private Integer reconNumber;
	private Integer reconProNumber;
	private BigDecimal reconMoney;
	private BigDecimal reconFreight;
	private BigDecimal reconTotal;
	
	// 回款部分
	private Integer sectionNumber;
	private Integer sectionProNumber;
	private BigDecimal sectionMoney;
	private BigDecimal sectionFreight;
	private BigDecimal sectionTotal;
	
	// 总订单信息
	private Integer totalNumber;
	private Integer totalProNumber;
	private BigDecimal totalMoney;
	private BigDecimal totalFreight;
	private BigDecimal totalTotal;
	
	private String hospitalId;
	private Date startTime;
	private Date endTime;
	private String logisticsName;
	
	public Integer getInvoiceNumber() {
		return invoiceNumber;
	}

	public void setInvoiceNumber(Integer invoiceNumber) {
		this.invoiceNumber = invoiceNumber;
	}

	public Integer getInvoiceProNumber() {
		return invoiceProNumber;
	}

	public void setInvoiceProNumber(Integer invoiceProNumber) {
		this.invoiceProNumber = invoiceProNumber;
	}

	public BigDecimal getInvoiceMoney() {
		return invoiceMoney;
	}

	public void setInvoiceMoney(BigDecimal invoiceMoney) {
		this.invoiceMoney = invoiceMoney;
	}

	public BigDecimal getInvoiceFreight() {
		return invoiceFreight;
	}

	public void setInvoiceFreight(BigDecimal invoiceFreight) {
		this.invoiceFreight = invoiceFreight;
	}

	public BigDecimal getInvoiceTotal() {
		return invoiceTotal;
	}

	public void setInvoiceTotal(BigDecimal invoiceTotal) {
		this.invoiceTotal = invoiceTotal;
	}

	public Integer getBackNumber() {
		return backNumber;
	}

	public void setBackNumber(Integer backNumber) {
		this.backNumber = backNumber;
	}

	public Integer getBackProNumber() {
		return backProNumber;
	}

	public void setBackProNumber(Integer backProNumber) {
		this.backProNumber = backProNumber;
	}

	public BigDecimal getBackMoney() {
		return backMoney;
	}

	public void setBackMoney(BigDecimal backMoney) {
		this.backMoney = backMoney;
	}

	public BigDecimal getBackFreight() {
		return backFreight;
	}

	public void setBackFreight(BigDecimal backFreight) {
		this.backFreight = backFreight;
	}

	public BigDecimal getBackTotal() {
		return backTotal;
	}

	public void setBackTotal(BigDecimal backTotal) {
		this.backTotal = backTotal;
	}

	public Integer getSignNumber() {
		return signNumber;
	}

	public void setSignNumber(Integer signNumber) {
		this.signNumber = signNumber;
	}

	public Integer getSignProNumber() {
		return signProNumber;
	}

	public void setSignProNumber(Integer signProNumber) {
		this.signProNumber = signProNumber;
	}

	public BigDecimal getSignMoney() {
		return signMoney;
	}

	public void setSignMoney(BigDecimal signMoney) {
		this.signMoney = signMoney;
	}

	public BigDecimal getSignFreight() {
		return signFreight;
	}

	public void setSignFreight(BigDecimal signFreight) {
		this.signFreight = signFreight;
	}

	public BigDecimal getSignTotal() {
		return signTotal;
	}

	public void setSignTotal(BigDecimal signTotal) {
		this.signTotal = signTotal;
	}

	public Integer getReconNumber() {
		return reconNumber;
	}

	public void setReconNumber(Integer reconNumber) {
		this.reconNumber = reconNumber;
	}

	public Integer getReconProNumber() {
		return reconProNumber;
	}

	public void setReconProNumber(Integer reconProNumber) {
		this.reconProNumber = reconProNumber;
	}

	public BigDecimal getReconMoney() {
		return reconMoney;
	}

	public void setReconMoney(BigDecimal reconMoney) {
		this.reconMoney = reconMoney;
	}

	public BigDecimal getReconFreight() {
		return reconFreight;
	}

	public void setReconFreight(BigDecimal reconFreight) {
		this.reconFreight = reconFreight;
	}

	public BigDecimal getReconTotal() {
		return reconTotal;
	}

	public void setReconTotal(BigDecimal reconTotal) {
		this.reconTotal = reconTotal;
	}

	public Integer getSectionNumber() {
		return sectionNumber;
	}

	public void setSectionNumber(Integer sectionNumber) {
		this.sectionNumber = sectionNumber;
	}

	public Integer getSectionProNumber() {
		return sectionProNumber;
	}

	public void setSectionProNumber(Integer sectionProNumber) {
		this.sectionProNumber = sectionProNumber;
	}

	public BigDecimal getSectionMoney() {
		return sectionMoney;
	}

	public void setSectionMoney(BigDecimal sectionMoney) {
		this.sectionMoney = sectionMoney;
	}

	public BigDecimal getSectionFreight() {
		return sectionFreight;
	}

	public void setSectionFreight(BigDecimal sectionFreight) {
		this.sectionFreight = sectionFreight;
	}

	public BigDecimal getSectionTotal() {
		return sectionTotal;
	}

	public void setSectionTotal(BigDecimal sectionTotal) {
		this.sectionTotal = sectionTotal;
	}

	public Integer getTotalNumber() {
		return totalNumber;
	}

	public void setTotalNumber(Integer totalNumber) {
		this.totalNumber = totalNumber;
	}

	public Integer getTotalProNumber() {
		return totalProNumber;
	}

	public void setTotalProNumber(Integer totalProNumber) {
		this.totalProNumber = totalProNumber;
	}

	public BigDecimal getTotalMoney() {
		return totalMoney;
	}

	public void setTotalMoney(BigDecimal totalMoney) {
		this.totalMoney = totalMoney;
	}

	public BigDecimal getTotalFreight() {
		return totalFreight;
	}

	public void setTotalFreight(BigDecimal totalFreight) {
		this.totalFreight = totalFreight;
	}

	public BigDecimal getTotalTotal() {
		return totalTotal;
	}

	public void setTotalTotal(BigDecimal totalTotal) {
		this.totalTotal = totalTotal;
	}

	public String getHospitalId() {
		return hospitalId;
	}

	public void setHospitalId(String hospitalId) {
		this.hospitalId = hospitalId;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public String getLogisticsName() {
		return logisticsName;
	}

	public void setLogisticsName(String logisticsName) {
		this.logisticsName = logisticsName;
	}

	@SuppressWarnings("unchecked")
	@Override
	public String toJSONString() {
		JSONObject obj = new JSONObject();
		obj.put("invoiceNumber", invoiceNumber);
		obj.put("invoiceProNumber", invoiceProNumber);
		obj.put("invoiceMoney", invoiceMoney);
		obj.put("invoiceFreight", invoiceFreight);
		obj.put("invoiceTotal", invoiceTotal);
		
		obj.put("backNumber", backNumber);
		obj.put("backProNumber", backProNumber);
		obj.put("backMoney", backMoney);
		obj.put("backFreight", backFreight);
		obj.put("backTotal", backTotal);
		
		obj.put("signNumber", signNumber);
		obj.put("signProNumber", signProNumber);
		obj.put("signMoney", signMoney);
		obj.put("signFreight", signFreight);
		obj.put("signTotal", signTotal);
		
		obj.put("reconNumber", reconNumber);
		obj.put("reconProNumber", reconProNumber);
		obj.put("reconMoney", reconMoney);
		obj.put("reconFreight", reconFreight);
		obj.put("reconTotal", reconTotal);
		
		obj.put("sectionNumber", sectionNumber);
		obj.put("sectionProNumber", sectionProNumber);
		obj.put("sectionMoney", sectionMoney);
		obj.put("sectionFreight", sectionFreight);
		obj.put("sectionTotal", sectionTotal);
		
		obj.put("totalNumber", totalNumber);
		obj.put("totalProNumber", totalProNumber);
		obj.put("totalMoney", totalMoney);
		obj.put("totalFreight", totalFreight);
		obj.put("totalTotal", totalTotal);
		
		if(null != startTime && null != endTime) {
			obj.put("startTime", DateFormatUtils.format(startTime, "yyyy-MM-dd HH:mm:ss"));
			obj.put("endTime", DateFormatUtils.format(endTime, "yyyy-MM-dd HH:mm:ss"));
		}
		obj.put("logisticsName", logisticsName);
		return obj.toJSONString();
	}

}
